Designing and training computing machines used in natural language understanding systems typically requires a large amount of human effort. Semantic parsing is used to map natural language input into a formal representation of its meaning. Parsing natural language input and determining a grammar for conversational systems that defines the structural rules is difficult. Many systems rely on manually crafted grammars which uses a large amount of experts and is labor-intense and does not scale easily. Other systems use in-domain annotated data that is labor-intense and time-consuming.